const path = require('path')  //文件路径模块
const webpack = require('webpack')  //文件路径模块

function resolve (dir) {
  // __dirname当前文件的绝对路径
  // path.join(__dirname,'a','b');  假如当前vue.config.js文件的路径是D:/git/m2m,那么拼接出来就是D:/git/m2m/a/b
  // path.join(__dirname,'/a','/b','..')  路径 / 不影响 但是 .. 表示上个文件 那么拼接出来就是D:/git/m2m/a     
  return path.join(__dirname, dir)
}


module.exports = {
  publicPath: '/',//根路径 cli3.0以上使用publicPath
  //assetsDir:'assets',//静态资源目录(js,css,img,fonts)这些文件都可以写里面
  outputDir: 'dist',//打包的时候生成的一个文件名
  lintOnSave: false,//是否开启eslint保存检测 ,它的有效值为 true || false || 'error'

  // css预设器配置项 详见https://cli.vuejs.org/zh/config/#css-loaderoptions
  css: {
    sourceMap: false,
    loaderOptions: {}
  },

  productionSourceMap: false, //去掉map文件
  // 修改webpack的配置   (高级配置)
  chainWebpack: config => {
    // console.log(config.module.rule)
    // config.plugins.delete('prefetch')
    config.plugin('provide').use(webpack.ProvidePlugin, [{
      $: 'jquery',
      jquery: 'jquery',
      jQuery: 'jquery',
      'window.jQuery': 'jquery'
    }])
  },
  // 环境配置
  configureWebpack: (config) => {
    if (process.env.NODE_ENV === 'production') {
      // 为生产环境修改配置...
      config.mode = 'production'
    } else {
      // 为开发环境修改配置...
      config.mode = 'development'
    }

    // 开发生产共同配置

    // 带这几种的后缀的文件可以自动解析 引入的时候可以不用写后缀
    config.resolve.extensions = [...config.resolve.extensions, '.js', '.vue', '.json']
    // 配置路径
    config.resolve.alias = {
      vue$: 'vue/dist/vue.esm.js',   // 现在主流的webpack2采用esm，也就是es6及以上的模块化编程，import Vue from 'vue' 走的都是alias里面配置的vue/dist/vue.esm.js了
      '@': resolve('src'),    // 本来写法path.resolve(__dirname, '/src') 当前文件目录下的src文件
      '@public': resolve('public')
    }

  },
  devServer: {
    disableHostCheck: true,  //当将此项配置设置为 true 时，将会跳过 host 检查. 这是不推荐的 因为不检查host的应用容易受到DNS重新绑定攻击。
    // open: true, //自动打开页面                                   
    // host: '0.0.0.0', // 允许外部ip访问
    port: 8096, // 端口
    // https: false, // 启用https
    overlay: {
      warnings: true,
      errors: true
    }, // 错误、警告在页面弹出
    proxy: {
      '/m2m/apis': {
        // target: 'http://192.168.1.104:8077', // 104测试
        target: 'http://localhost:8067', // 后台接口域名
        // ws: true,        //如果要代理 websockets，配置这个参数
        secure: false,  // 如果是https接口，需要配置这个参数
        changeOrigin: true, //是否跨域
        pathRewrite: {
          '/m2m/apis': ''
        }
      } // 代理转发配置，用于调试环境
    }
  }


}